package com.biostime.rpc.terminal.util;

import org.apache.commons.lang.StringUtils;

import net.sourceforge.pinyin4j.PinyinHelper;

public class SpellUtil {

	public static void main(String[] args) {
		System.err.println(getSpellFirstCharAll("嗒嘀嗒黛姿"));
		System.err.println("==="+getSpellFirstChar("嗒嘀嗒黛姿"));
	}

	/**
	 * 获取中文字符串首字拼音首字母，多音字默认只取第一个，如传入英文/数字则返回首字符
	 * @param input
	 * @return 首字母(大写)
	 */
	public static String getSpellFirstChar(String input) {
		if (StringUtils.isBlank(input)) {
			return "";
		}
		char firstChar = input.charAt(0);
		StringBuffer pybf = new StringBuffer();
		if (firstChar > 128) {
			String[] spells = PinyinHelper.toHanyuPinyinStringArray(firstChar);
			if (spells != null) {
				pybf.append(spells[0].charAt(0));
			}
		} else {
			pybf.append(firstChar);
		}
		return pybf.toString().replaceAll("\\W", "").trim().toUpperCase();
	}
	
	/**
	 * 获取中文字符串拼音首字母，多音字默认只取第一个，英文/数字不做处理
	 * @param input
	 * @return 字符串所有首字母字符串(大写)
	 */
	public static String getSpellFirstCharAll(String input) {
		if (StringUtils.isBlank(input))
			return "";
		char[] arr = input.toCharArray();
		StringBuffer pybf = new StringBuffer();
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > 128) {
				String[] spells = PinyinHelper.toHanyuPinyinStringArray(arr[i]);
				if (spells != null) {
					pybf.append(spells[0].charAt(0));
				}
			} else {
				pybf.append(arr[i]);
			}
		}
		return pybf.toString().replaceAll("\\W", "").trim().toUpperCase();
	}
}
